package cc.eddic.pratice.programmingparadigms.exam.impl;

import cc.eddic.pratice.programmingparadigms.exam.ExamService;
import cc.eddic.pratice.programmingparadigms.exam.domain.Answer;
import cc.eddic.pratice.programmingparadigms.exam.domain.Exam;
import cc.eddic.pratice.programmingparadigms.exam.domain.Question;
import cc.eddic.pratice.programmingparadigms.exam.domain.Student;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;


public class ExamServiceLhImpl extends MasterDataServiceLhImpl implements ExamService {

    @Override
    public List<Answer> importAnswers(String answerExcelFile) {
        String answerfile = "试题编号,李惠,谭雨晴,李馨,曾奕哲,车晓满,王巧家,孙晨玮,崔相元,韩睿洁\n" +
                "1,B,B,B,B,B,B,B,B,C\n" +
                "2,C,C,C,C,C,C,C,C,C\n" +
                "3,A,A,A,A,A,B,A,A,A\n" +
                "4,C,C,C,C,C,C,C,B,C\n" +
                "5,D,D,D,D,D,D,D,D,D\n" +
                "6,B,B,B,B,B,D,B,A,B\n" +
                "7,B,B,B,B,B,C,B,C,B\n" +
                "8,A,A,C,A,A,A,A,A,A\n" +
                "9,D,D,D,D,D,D,A,D,D\n" +
                "10,D,B,D,B,D,D,B,D,D\n" +
                "11,B,A,B,C,A,A,A,A,A\n" +
                "12,C,A,C,A,B,C,C,C,C\n" +
                "13,A,A,B,A,A,A,A,A,B\n" +
                "14,A,A,C,C,D,C,A,C,C\n" +
                "15,A,A,A,A,A,B,A,B,A\n" +
                "16,B,B,B,B,B,B,B,B,B\n" +
                "17,A,C,D,D,D,D,D,D,D\n" +
                "18,C,C,C,C,C,C,C,C,C\n" +
                "19,D,D,D,D,D,D,C,A,D\n" +
                "20,B,B,B,B,B,B,B,B,B\n" +
                "21,D,C,C,A,D,D,,A,\n" +
                "22,D,D,D,,D,C,,C,C\n" +
                "23,A,A,A,A,D,D,,C,C\n" +
                "24,C,C,C,C,C,D,A,C,D\n" +
                "25,B,B,B,B,B,B,,D,B";
        List<Answer> answerslist = new ArrayList<>();
        String[] answer = answerfile.split("\n");
        String[] answername = answer[0].split(",");
        QuestionBankServiceLhImpl obj = new QuestionBankServiceLhImpl();
        List<Question> questionList = obj.importCorrectAnswers("");
        Exam exam = find(getExams(), exam1 -> "7-12 开营考试".equals(exam1.getName())).
                orElseThrow(() -> new IllegalArgumentException(""));
        for (int j = 1; j < answername.length; j++) {
            int finalJ = j;
            Student student = find(getStudents(), student1 -> answername[finalJ].equals(student1.getName())).
                    orElseThrow(() -> new IllegalArgumentException(""));
            Question q = null;
            for (int i = 1; i < answer.length; i++) {
                String[] s = answer[i].split(",", -1);
                for (Question qu : questionList) {
                    if (qu.getNo() == Integer.parseInt(s[0])) {
                        q = qu;
                        break;
                    }
                }
                char c = ' ';
                if (!Objects.equals(s[j], "")) {
                    c = s[j].toCharArray()[0];
                }
                Answer as = new Answer(exam, q, student, c);
                answerslist.add(as);
            }
        }
        return answerslist;
    }
}
